<?php

class Core_Validate_Assistido extends Zend_Validate_Abstract
{
	const NOME 					= 'nome';
	const RG 					= 'rg';
	const ORGAO_EXPEDIDOR 		= 'orgaoExpedidor';
	const CPF 					= 'cpf';
	const MAE 					= 'mae';
	const NACIONALIDADE 		= 'nacionalidade';
	const NATURALIDADE_UF 		= 'naturalidadeUf';
	const NATURALIDADE 			= 'naturalidade';
	const NASCIMENTO 			= 'nascimento';
	const ESCOLARIDADE 			= 'escolaridade';
	const PROFISSAO 			= 'profissao';
	const REMUNERACAO 			= 'remuneracao';
	const ESTADO_CIVIL 			= 'estadoCivil';
	const DEPENDENTES 			= 'dependentes';
	const SITUACAO_HABITACIONAL = 'situacaoHabitacional';
	
	protected $_messageTemplates = array(
		self::NOME 					=> 'Nome do assistido obrigatório.',
		self::RG 					=> 'RG do assistido obrigatório.',
		self::ORGAO_EXPEDIDOR 		=> 'Orgão expedidor do assistido obrigatório.',
		self::CPF 					=> 'CPF do assistido obrigatório.',
		self::MAE 					=> 'Nome da mãe do assistido obrigatório.',
		self::NACIONALIDADE 		=> 'Nacionalidade do assistido obrigatório.',
		self::NATURALIDADE_UF 		=> 'Naturalidade (UF) do assistido obrigatório.',
		self::NATURALIDADE 			=> 'Naturalidade (Cidade) do assistido obrigatório.',
		self::NASCIMENTO 			=> 'Data de nascimento do assistido obrigatório.',
		self::ESCOLARIDADE 			=> 'Escolaridade do assistido obrigatório.',
		self::PROFISSAO 			=> 'Profissão do assistido obrigatório.',
		self::REMUNERACAO 			=> 'Remuneração do assistido obrigatório.',
		self::ESTADO_CIVIL 			=> 'Estado civil do assistido obrigatório.',
		self::DEPENDENTES 			=> 'Número de dependentes do assistido obrigatório.',
		self::SITUACAO_HABITACIONAL => 'Situação habitacional do assistido obrigatório.'
	);

	public function isValid($data)
	{
		$valid = true;
		
		if ('' == $data->ds_nome) {
			$this->_error(self::NOME);
			$valid = false;
		}
		if ('' == $data->ds_rg) {
			$this->_error(self::RG);
			$valid = false;
		}
		if ('' == $data->ds_orgao_expedidor) {
			$this->_error(self::ORGAO_EXPEDIDOR);
			$valid = false;
		}
		if (!$data && !is_int($data->ds_cpf)) {
			$this->_error(self::CPF);
			$valid = false;
		}
		if ('' == $data->ds_mae) {
			$this->_error(self::MAE);
			$valid = false;
		}
		if (!$data->id_nacionalidade && !is_numeric($data->id_nacionalidade)) {
			$this->_error(self::NACIONALIDADE);
			$valid = false;
		}
		
		if (!$data->id_naturalidade && !is_numeric($data->id_naturalidade)) {
			$this->_error(self::NATURALIDADE);
			$valid = false;
		}
		if ('' == $data->dt_nascimento) {
			$this->_error(self::NASCIMENTO);
			$valid = false;
		}
		if (!$data->id_nivel_escolaridade && !is_numeric($data->id_nivel_escolaridade)) {
			$this->_error(self::ESCOLARIDADE);
			$valid = false;
		}
		if (!$data->id_profissao && is_numeric($data->id_profissao)) {
			$this->_error(self::PROFISSAO);
			$valid = false;
		}
		if (!$data && !is_numeric($data->nu_remuneracao)) {
			$this->_error(self::REMUNERACAO);
			$valid = false;
		}
		if (!$data->id_estado_civil && !is_numeric($data->id_estado_civil)) {
			$this->_error(self::ESTADO_CIVIL);
			$valid = false;
		}
		
		if (!$data && !is_numeric($data->nu_dependentes)) {
			$this->_error(self::DEPENDENTES);
			$valid = false;
		}
		if (!$data->id_situacao_habitacional && !is_numeric($data->id_situacao_habitacional)) {
			$this->_error(self::SITUACAO_HABITACIONAL);
			$valid = false;
		}

		return $valid;
	}
}
